#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
AIOT智能学习桌项目 - 统一配置文件
"""

import os
from pathlib import Path

# 项目根目录
PROJECT_ROOT = Path(__file__).parent

# 硬件配置
HARDWARE_CONFIG = {
    'camera_id': 0,
    'ultrasonic_trigger_pin': 7,
    'ultrasonic_echo_pin': 8,
    'buzzer_pin': 9,
    'led_pins': {
        'red': 6,
        'green': 10,
        'blue': 11
    },
    'button_pins': {
        'function': 5,
        'calibration': 11
    }
}

# 语音识别配置
VOICE_CONFIG = {
    'language': 'zh-CN',
    'timeout': 1,
    'phrase_time_limit': 5,
    'wake_word': '小助手',
    'energy_threshold': 300,
    'dynamic_energy_threshold': True
}

# 坐姿监测配置
POSTURE_CONFIG = {
    'optimal_distance_min': 30.0,  # cm
    'optimal_distance_max': 50.0,  # cm
    'warning_threshold': 25.0,     # cm
    'alert_frequency': 5,          # 每5次警报语音提醒一次
    'detection_interval': 3.0,     # 检测间隔(秒)
    'stability_threshold': 3       # 连续异常次数才触发警报
}

# 摄像头配置
CAMERA_CONFIG = {
    'width': 640,
    'height': 480,
    'fps': 30,
    'detection_confidence': 0.5,
    'tracking_confidence': 0.5
}

# 数据存储配置
DATA_CONFIG = {
    'data_dir': PROJECT_ROOT / 'data',
    'user_profiles_dir': PROJECT_ROOT / 'user_profiles',
    'logs_dir': PROJECT_ROOT / 'logs',
    'backup_interval': 3600,  # 备份间隔(秒)
    'max_log_files': 10
}

# 显示配置
DISPLAY_CONFIG = {
    'show_fps': True,
    'show_landmarks': True,
    'show_metrics': True,
    'show_suggestions': True,
    'font_scale': 0.6,
    'line_thickness': 2,
    'circle_radius': 3
}

# 颜色配置
COLORS = {
    'excellent': (0, 255, 0),    # 绿色
    'good': (0, 255, 255),       # 黄色
    'fair': (0, 165, 255),       # 橙色
    'poor': (0, 0, 255),         # 红色
    'landmarks': (255, 0, 0),    # 蓝色
    'skeleton': (255, 255, 0),   # 青色
    'text': (255, 255, 255),     # 白色
    'background': (0, 0, 0)      # 黑色
}

# API配置
API_CONFIG = {
    'openai_api_key': os.getenv('OPENAI_API_KEY', ''),
    'speech_api_timeout': 10,
    'max_retries': 3,
    'request_interval': 1.0
}

# 系统配置
SYSTEM_CONFIG = {
    'debug_mode': False,
    'log_level': 'INFO',
    'auto_start': False,
    'save_session_data': True,
    'enable_voice_interaction': True,
    'enable_posture_monitoring': True,
    'enable_camera_detection': True
}

def ensure_directories():
    """确保必要的目录存在"""
    for dir_path in [DATA_CONFIG['data_dir'], 
                     DATA_CONFIG['user_profiles_dir'], 
                     DATA_CONFIG['logs_dir']]:
        dir_path.mkdir(parents=True, exist_ok=True)

def get_config(section=None):
    """获取配置"""
    configs = {
        'hardware': HARDWARE_CONFIG,
        'voice': VOICE_CONFIG,
        'posture': POSTURE_CONFIG,
        'camera': CAMERA_CONFIG,
        'data': DATA_CONFIG,
        'display': DISPLAY_CONFIG,
        'colors': COLORS,
        'api': API_CONFIG,
        'system': SYSTEM_CONFIG
    }
    
    if section:
        return configs.get(section, {})
    return configs

if __name__ == "__main__":
    ensure_directories()
    print("配置文件加载完成")
    print(f"项目根目录: {PROJECT_ROOT}")
    print(f"数据目录: {DATA_CONFIG['data_dir']}")